package game;

import java.io.*;
import java.util.*;

/**
 * Permet de lancer le jeu a partir d'un fichier lif
 */
public class Lancer {

	/**
	 * lire lit le fichier lif pour le transformer en plateau
	 * 
	 * @param lif
	 *            : nom du fichier avec les proprietes de demarrage du jeu
	 * @param jeu
	 *            : Appel d'un plateau.
	 */

	public static void lire(String lif, Plateau jeu) {
		try {
			FileReader f = new FileReader(lif);
			BufferedReader in = new BufferedReader(f);
			String ligne = null;
			while ((ligne = in.readLine()) != null) {
				StringTokenizer lignest = new StringTokenizer(ligne);
				while (lignest.hasMoreTokens()) {
					String token = lignest.nextToken();
					if (token.equals("#Life")) {
						String version = lignest.nextToken();
						if (version.equals("1.06")) {
							System.out.println("La version est : Life 1.06");
							break;
						} else if (version.equals("1.05")) {
							System.out.println("La version est : Life 1.05");
						} else {
							System.out.println("La version n'est pas precise");
						}
					}
					if (token.equals("#D")) {
						while (lignest.hasMoreTokens()) {
							System.out.print(lignest.nextToken() + " ");
						}
						System.out.println();
					}
					if (token.equals("#N")) {
						jeu.regles_normales();
					}
					if (token.equals("#R")) {
						token = lignest.nextToken();
						System.out.println(token);
						String token2 = token;
						token = token.replace('/', ' ');
						if (!token2.equals(token)) {
							StringTokenizer regles = new StringTokenizer(token);
							int vie = Integer.parseInt(regles.nextToken());
							int mort = Integer.parseInt(regles.nextToken());
							System.out.println(vie);
							System.out.println(mort);
							while (vie != 0) {
								jeu.ajout_vie(vie % 10);
								vie = vie / 10;
								System.out.println(vie);
							}
							while (mort != 0) {
								jeu.ajout_mort(vie % 10);
								mort = mort / 10;
								System.out.println(mort);
							}
						}
					}
					if (token.equals("#P")) {
						int xdebut = Integer.parseInt(lignest.nextToken());
						int xsave = xdebut;
						int ydebut = Integer.parseInt(lignest.nextToken());
						System.out.println("Position coin a gauche" + xdebut
								+ "/" + ydebut);
						while ((ligne = in.readLine()) != null) {
							lignest = new StringTokenizer(ligne);
							if (lignest.nextToken().equals("#P")) {
								xdebut = Integer.parseInt(lignest.nextToken());
								xsave = xdebut;
								ydebut = Integer.parseInt(lignest.nextToken());
								System.out.println("Position coin a gauche"
										+ xdebut + "/" + ydebut);
							} else {
								for (int i = 0; i < ligne.length(); i++) {
									if (ligne.charAt(i) == '*') {
										jeu.ajout(xdebut, ydebut);
									}
									xdebut++;
								}
								xdebut = xsave;
								ydebut = ydebut - 1;
							}
						}
					}

				}
			}
			in.close();
		} catch (Exception e) {
		}
	}

}